package match.chuanchao.dto;

import java.util.ArrayList;
import java.util.List;

public class AddOrderReq {
    // 基础字段及默认值（与JSON保持一致）
    private String discountCode = "";
    private int useDeductionPoint = 0;
    private int useDeductionMoney = 0;
    private String useGiftCardId = null; // JSON中为null
    private String useGiftCardMoney = "0.00";
    private boolean quickTrade = true;
    private int useGegMemberShip = 2;
    private String galaxyCustomerLevelId = null; // JSON中为null
    private String orderDiscountId = "-1";
    private String orderDiscountRuleId = "";
    private String orderPayType = "176882";
    private String receivableMoney = "10.00";
    private String thirdDiscountRuleId = null; // JSON中为null
    private String thirdDiscountId = null; // JSON中为null
    private String paymentDiscountId = "-1";
    private String useBalanceMoney = null; // JSON中为null
    private String paymentPassword = "";
    private String projectId = "";
    private String promoCode = "";
    // 初始化列表并设置默认值
    private List<CheckGoods> checkGoods = new ArrayList<CheckGoods>();
    private List<TicketRestrict> ticketRestricts = new ArrayList<TicketRestrict>();
    private OrderReceiveParam orderReceiveParam = new OrderReceiveParam();
    private String token = null; // JSON中为null
    private int langType = 1;

    // Getter和Setter方法
    public String getDiscountCode() {
        return discountCode;
    }

    public void setDiscountCode(String discountCode) {
        this.discountCode = discountCode;
    }

    public int getUseDeductionPoint() {
        return useDeductionPoint;
    }

    public void setUseDeductionPoint(int useDeductionPoint) {
        this.useDeductionPoint = useDeductionPoint;
    }

    public int getUseDeductionMoney() {
        return useDeductionMoney;
    }

    public void setUseDeductionMoney(int useDeductionMoney) {
        this.useDeductionMoney = useDeductionMoney;
    }

    public String getUseGiftCardId() {
        return useGiftCardId;
    }

    public void setUseGiftCardId(String useGiftCardId) {
        this.useGiftCardId = useGiftCardId;
    }

    public String getUseGiftCardMoney() {
        return useGiftCardMoney;
    }

    public void setUseGiftCardMoney(String useGiftCardMoney) {
        this.useGiftCardMoney = useGiftCardMoney;
    }

    public boolean isQuickTrade() {
        return quickTrade;
    }

    public void setQuickTrade(boolean quickTrade) {
        this.quickTrade = quickTrade;
    }

    public int getUseGegMemberShip() {
        return useGegMemberShip;
    }

    public void setUseGegMemberShip(int useGegMemberShip) {
        this.useGegMemberShip = useGegMemberShip;
    }

    public String getGalaxyCustomerLevelId() {
        return galaxyCustomerLevelId;
    }

    public void setGalaxyCustomerLevelId(String galaxyCustomerLevelId) {
        this.galaxyCustomerLevelId = galaxyCustomerLevelId;
    }

    public String getOrderDiscountId() {
        return orderDiscountId;
    }

    public void setOrderDiscountId(String orderDiscountId) {
        this.orderDiscountId = orderDiscountId;
    }

    public String getOrderDiscountRuleId() {
        return orderDiscountRuleId;
    }

    public void setOrderDiscountRuleId(String orderDiscountRuleId) {
        this.orderDiscountRuleId = orderDiscountRuleId;
    }

    public String getOrderPayType() {
        return orderPayType;
    }

    public void setOrderPayType(String orderPayType) {
        this.orderPayType = orderPayType;
    }

    public String getReceivableMoney() {
        return receivableMoney;
    }

    public void setReceivableMoney(String receivableMoney) {
        this.receivableMoney = receivableMoney;
    }

    public String getThirdDiscountRuleId() {
        return thirdDiscountRuleId;
    }

    public void setThirdDiscountRuleId(String thirdDiscountRuleId) {
        this.thirdDiscountRuleId = thirdDiscountRuleId;
    }

    public String getThirdDiscountId() {
        return thirdDiscountId;
    }

    public void setThirdDiscountId(String thirdDiscountId) {
        this.thirdDiscountId = thirdDiscountId;
    }

    public String getPaymentDiscountId() {
        return paymentDiscountId;
    }

    public void setPaymentDiscountId(String paymentDiscountId) {
        this.paymentDiscountId = paymentDiscountId;
    }

    public String getUseBalanceMoney() {
        return useBalanceMoney;
    }

    public void setUseBalanceMoney(String useBalanceMoney) {
        this.useBalanceMoney = useBalanceMoney;
    }

    public String getPaymentPassword() {
        return paymentPassword;
    }

    public void setPaymentPassword(String paymentPassword) {
        this.paymentPassword = paymentPassword;
    }

    public String getProjectId() {
        return projectId;
    }

    public void setProjectId(String projectId) {
        this.projectId = projectId;
    }

    public String getPromoCode() {
        return promoCode;
    }

    public void setPromoCode(String promoCode) {
        this.promoCode = promoCode;
    }

    public List<CheckGoods> getCheckGoods() {
        return checkGoods;
    }

    public void setCheckGoods(List<CheckGoods> checkGoods) {
        this.checkGoods = checkGoods;
    }

    public List<TicketRestrict> getTicketRestricts() {
        return ticketRestricts;
    }

    public void setTicketRestricts(List<TicketRestrict> ticketRestricts) {
        this.ticketRestricts = ticketRestricts;
    }

    public OrderReceiveParam getOrderReceiveParam() {
        return orderReceiveParam;
    }

    public void setOrderReceiveParam(OrderReceiveParam orderReceiveParam) {
        this.orderReceiveParam = orderReceiveParam;
    }

    public String getToken() {
        return token;
    }

    public void setToken(String token) {
        this.token = token;
    }

    public int getLangType() {
        return langType;
    }

    public void setLangType(int langType) {
        this.langType = langType;
    }

    // 内部类：CheckGoods（含默认值）
    public static class CheckGoods {
        private String eventId; // JSON中对应值

        public String getEventId() {
            return eventId;
        }

        public void setEventId(String eventId) {
            this.eventId = eventId;
        }
    }

    // 内部类：TicketRestrict（含默认值，通过构造器区分不同bearerId）
    public static class TicketRestrict {
        private String goodId = "0"; // JSON中对应值
        private String bearerId;
        private String priceId; // JSON中对应值

        // 构造器：初始化不同的bearerId
        public TicketRestrict() {
        }

        public String getGoodId() {
            return goodId;
        }

        public void setGoodId(String goodId) {
            this.goodId = goodId;
        }

        public String getBearerId() {
            return bearerId;
        }

        public void setBearerId(String bearerId) {
            this.bearerId = bearerId;
        }

        public String getPriceId() {
            return priceId;
        }

        public void setPriceId(String priceId) {
            this.priceId = priceId;
        }
    }

    // 内部类：OrderReceiveParam（含默认值）
    public static class OrderReceiveParam {
        private String distributionMoney = "0.00"; // JSON中对应值
        private int ticketType = 11; // JSON中对应值
        private int receiveType = 1; // JSON中对应值
        private String receiveName = ""; // JSON中对应值

        public String getDistributionMoney() {
            return distributionMoney;
        }

        public void setDistributionMoney(String distributionMoney) {
            this.distributionMoney = distributionMoney;
        }

        public int getTicketType() {
            return ticketType;
        }

        public void setTicketType(int ticketType) {
            this.ticketType = ticketType;
        }

        public int getReceiveType() {
            return receiveType;
        }

        public void setReceiveType(int receiveType) {
            this.receiveType = receiveType;
        }

        public String getReceiveName() {
            return receiveName;
        }

        public void setReceiveName(String receiveName) {
            this.receiveName = receiveName;
        }
    }
}